package com.example.cart.utils;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;

import java.io.FileInputStream;
import java.io.FileOutputStream;

import lombok.Cleanup;

public class FileUtils {

    /**
     * 将位图数据保存到SD卡指定目录
     * @param bitmap 位图数据
     * @param path 位图数据要保存到的SD卡路径
     */
    public static void saveImage(Bitmap bitmap, String path) {
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(path);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
        } catch (Exception e) {
            Log.e("FileUtils", String.format("保存位图资源到SD卡出错。SD卡路径：%s", path), e);
        } finally {
            try {
                if (fos != null) {
                    fos.close();
                }
            } catch (Exception ee) {
                Log.e("FileUtils", String.format("保存位图资源关闭文件输出流出错。SD卡路径：%s", path), ee);
            }
        }
    }

    /**
     * 从指定路径的图片文件中读取位图数据
     * @param path 图片文件路径
     * @return 位图数据
     */
    public static Bitmap openImage(String path) {
        FileInputStream fins = null;
        Bitmap bitmap = null;
        try {
            fins = new FileInputStream(path);
            bitmap = BitmapFactory.decodeStream(fins);
        } catch (Exception e) {
            Log.e("FileUtils", String.format("从图片文件读取位图资源出错。图片文件：%s", path), e);
        } finally {
            try {
                if (fins != null) {
                    fins.close();
                }
            } catch (Exception e3) {
                Log.e("FileUtils", String.format("从图片文件读取位图资源后关闭输入流出错。图片文件：%s", path), e3);
            }
        }
        return bitmap;
    }
}
